home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Loadstar 242
/
242.d81
/
t.dissolver 1.2
< prev
next >
Wrap
Text File
|
2022-08-26
|
6KB
|
204 lines
u
S T A R D I S S O L V E R
Program and Text by Lee Novak
STAR DISSOLVER is the third and
final program in my "link and pack"
trilogy. It reverses the effects of
STAR PACKER 1.1 and STAR LINKER 1.9
in a controlled environment, leaving
you with the same, untouched files
the original programmer used.
STAR DISSOLVER takes the mystery
out of those "10 SYS2061" programs.
[USING THE PROGRAM]
[{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}]
The main menu should be familiar.
The "suspect" program you want to
dissolve loads from the source drive.
Later on, the extracted "component"
files are saved to the target drive.
Press B to return to BASIC.
Press F5 to bring up a file
requestor. Select any "suspect" file
or press F7 to cancel. Since this
file is just that, a suspect, you
don't need to know beforehand if it
is linked, packed, or anything.
STAR DISSOLVER loads the file and
tells you its length. Press RETURN to
make the program check if the file is
linked and/or packed. And if either
is so, it automatically "dissolves"
the file for you. Hence the name, eh?
[AFTER DISSOLVING]
[{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}]
If the program was only packed,
you'll see the value under "bytes"
for that solitiary program increase.
If the program was linked, you'll see
a list of the component files, with
separate sizes and load addresses.
You'll need to remember which is
the primary BASIC file (it's white)
if you choose to re-link the program
later. You will NOT need to know the
custom link addresses of each file.
My program ensures the load address
of each file IS the link address!
STAR DISSOLVER wasn't designed to
identify and decode the Jeff Jones'
series of linkers, so programs using
them will be flagged as "not linked".
Press F1 to begin the automated
saving sequence to the target drive.
A disk error at this point will halt
all operations, with the exception of
the "file exists" error.
You don't have to save. Press F7
to cancel back to the main menu. Like
STAR DISSOLVER's predecesors, you can
load up files just to play around.
Keep a scratch disk handy for
dissolving. Never dissolve directly
to a LOADSTAR disk. You would almost
certainly get a "disk full" error and
a splat file!
[FT:] You can get away with
dissolving onto the LOADSTAR disk if
you get the 1581 version, but it's
still not a good idea unless you're
using a backup.
A file that is neither linked nor
packed can still be saved, only it
hasn't changed a bit! Think of this
"feature" as a simple file copier
with a 51.5K capacity.
[MORE ABOUT SAVING]
[{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}]
STAR DISSOLVER will not allow you
to "scratch and replace" when an
identical filename is found on disk.
Instead, you're given the option of
giving the currently saving file a
different name, or skip saving that
particular file altogether.
Why would you want to do that?
Suppose a bug is found in a large,
linked program. Fender could provide
the ONLY file that needs replacing.
You could copy that file to a scratch
disk, and dissolve the linked file to
the same disk. When prompted, just
skip saving the duplicated file.
Of course, now you would have to
re-link and re-pack the program to
restore its former glory. This does
take some time from a LOADSTARite.
Maybe it will be easier on both sides
to re-publish a bugged program...
Bug fixes aren't the only reason
to tear apart and re-build a program.
Besides curiosity, you could break
into a program to change a font or
swap a music file. The main thing is
that you gain "programmer" access to
upcoming LOADSTAR programs.
Many programs can be RUN in their
unpacked and unlinked state with
little modification. All that is
usually needed is to remove the REMs
in front of the BLOAD lines in the
BASIC program. Sometimes a GOTO jumps
over the BLOAD lines. Remove that.
There are no guarantees that this
kind of tinkering will get a program
working as separate files. Every
programmer has a different style and
there's no telling what sort of
nonsense may be in a program!
[FENDER'S POSTMUMBLE:] This program
is going on my utilities partition on
RAMLink right after STAR LINKER and
STAR PACKER, and it should go on your
utilities disk, too. I'm finding the
LINKER and PACKER tools to be
lifesavers for me and you'll be
seeing plenty of linked, packed
programs on LOADSTAR in the future.
I only wish that I had the time to go
back through all of the great
programs that we've published and
redo them with Lee's fantastic tools.
They'd be smaller, load faster, and
would have the source codes
"built-in". I'm afraid that there are
many programs we've published that,
because of shoddy archiving, would be
very difficult to redo.
No more, thanks to Lee Novak.
[DAVE'S ADDENDUM:] I use *.PKD to
indicate a Packed program and *.LNK
for Linked. If you want to Dissolve a
file then run the resulting "raw", you
may need to create a new Boot to reset
the Bottom of BASIC and bload the
various files. Use pen and paper to
note the various load addresses.
For Dissolved binary files, I have
found that an old technique works just
fine:
5 D = PEEK(186):IF D<8 THEN STOP
10 IF A=0 THEN A=1:LOAD"FILE1",D,1
11 IF A=1 THEN A=2:LOAD"FILE2",D,1
12 IF A=2 THEN A=3:LOAD"FILE3",D,1
20 A$="BASICPROG"
30 PRINT"<CLR><DN><DN><DN>LOADA$,D"
40 PRINT"<DN><DN><DN><DN>RUN<HOME>
50 Q=INT(BOB/256)
51 POKE 44,Q: POKE Q*256,0
60 POKE631,13:POKE632,13:POKE198,2
70 END
(BOB - Bottom of BASIC - is the load
address of the BASIC program. For
example, if the BASIC program is shown
by Dissolver to load at 4097, then BOB
would equal 4097.)
DMM